namespace Pinwheel.Kernel
{
    public interface IMessageHandler
    {
        void RegisterMessageHandler(MessageHandlerType type, MessageHandler handler);
        
        void UnregisterMessageHandler(MessageHandlerType type, MessageHandler handler);
        
        TaskCompletionSource<IMessage> InvokeMessageHandler(MessageHandlerType type, ref ServiceMessage message);
    }
}
